package cn.edu.cdtu.healthclient.connect;

import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import cn.edu.cdtu.healthclient.domain.Register;
import cn.edu.cdtu.healthclient.utils.ConnectUtil;
import cn.edu.cdtu.healthclient.utils.ConnectUtil.HealthDoctorRegister;

import com.google.gson.Gson;
//该类为注册时 客户端将用户输入的数据发送给服务器。
public class SendService {

	//发送注册信息到服务器上。
	public static boolean sendReg(HttpClient httpClient,String doWhat,Register reg) 
			throws Exception {
		//到服务器的URL路径。
		String path = ConnectUtil.HealthServerContect.SERVER_URL
				+ ConnectUtil.HealthServerContect.DOCTOR_SERVLET;
		//建立Http连接
		HttpPost post = new HttpPost(path);
		//创建一个数组列表用来临时存储用户信息。
		List<NameValuePair> params= new ArrayList<NameValuePair>();
		//创建GSON对象
		Gson gsonreg = new Gson();
		//将用户信息加载到列表中。
		params.add(new BasicNameValuePair(HealthDoctorRegister.Option.DO_WHAT,doWhat));
		params.add(new BasicNameValuePair(HealthDoctorRegister.Pargram.REG_GET,
				gsonreg.toJson(reg)));
		post.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
		//通过Http发送打包好了的信息到服务器上。
		HttpResponse response = httpClient.execute(post);
		//如果服务器接受数据成功返回一个真值。否则返回false表示发送失败
		if (response.getStatusLine().getStatusCode()==HttpStatus.SC_OK) {
			String message = EntityUtils.toString(response.getEntity());
			if(HealthDoctorRegister.Result.REG_SUCCESS.equals(message)){
				return true;
			}
		}
		return false;
	}
}
